//如需动态获取权限，修改res.authSetting['scope.userLocation']与scope: 'scope.userLocation'的值。
// 小程序使用
/****
 userInfo:用户信息
 userLocation:地理位置
 address:通讯地址
 werun:运动步数
 record:录音
 writePhotosAlbum:保存到相册
 camera:摄像头
****/

const getAuth = (auth) => {
  return new Promise((resolve, reject) => {
          uni.getSetting({
            success(res) {
              if (!res.authSetting[`scope.${auth}`]) {
                uni.authorize({
                  scope: `scope.${auth}`,
                  success() {
                    resolve()
                  },
                  async fail(e) {
                  uni.hideLoading()
                  await showText(auth,resolve, reject)
                    // uni.showModal({
                    //   title: '提示',
                    //   content: '请前往设置打开权限',
                    //   success(res) {
                    //     if (res.confirm) {
                    //       uni.openSetting({
                    //         success(res) {
                    //           console.log(res)
                    //           if(!res.authSetting[`scope.${auth}`]){
                    //             reject()
                    //           }else{
                    //             resolve()
                    //           }
                    //         },
                    //         fail(err) {
                    //           console.log(err)
                    //           reject()
                    //         }
                    //       })
                    //     } else if (res.cancel) {
                    //       uni.showModal({
                    //         title: '提示',
                    //         content: '请授权小程序权限，\n「右上角」-「设置」中开启',
                    //         showCancel: false,
                    //         success(res) {
                    //           if (res.confirm) {
                    //             reject()
                    //           }
                    //         }
                    //       })
                    //     }
                    //   }
                    // })
                  }
                })
              } else {
                resolve()
              }
            }
          })
  })
}

const showText = async (auth,resolve, reject)=>{
  await uni.showModal({
    title: '提示',
    content: '请前往设置打开权限',
    success(res) {
      if (res.confirm) {
        uni.openSetting({
          async success(res) {
            console.log(res,res.authSetting[`scope.${auth}`])
            if(!res.authSetting[`scope.${auth}`]){
             return  await showText(auth,resolve, reject)
            }else{
              return resolve()
            }
          },
          fail(err) {
            console.log(err)
            return reject()
          }
        })
      } else if (res.cancel) {
        uni.showModal({
          title: '提示',
          content: '请授权小程序权限，\n「右上角」-「设置」中开启',
          showCancel: false,
          success(res) {
            if (res.confirm) {
              return reject()
            }
          }
        })
      }
    }
  })
}
export{
  getAuth,
}